package main

import "fmt"

func main() {
	// 中文字符  Unicode码点                 UTF8编码
	//  中          U+4E2D                  E4B8AD
	//  国          U+56FD                  E59BBD
	//  欢          U+6B22                  E6ACA2
	//  迎          U+8FCE                  E8BF8E
	//  您          U+60A8                  E682A8
	s := "中国欢迎您"
	rs := []rune(s) // 码点
	fmt.Println(rs)

	sl := []byte(s) // string 底层存储

	fmt.Println(sl)
	for i, v := range rs {
		var utf8Bytes []byte
		// utf-8 三字节表示一个中文
		for j := i * 3; j < (i+1)*3; j++ {
			utf8Bytes = append(utf8Bytes, sl[j])
		}
		fmt.Printf("%s => %X => %X\n", string(v), v, utf8Bytes)
	}
}

/*
[20013 22269 27426 36814 24744]
[228 184 173 229 155 189 230 172 162 232 191 142 230 130 168]
中 => 4E2D => E4B8AD
国 => 56FD => E59BBD
欢 => 6B22 => E6ACA2
迎 => 8FCE => E8BF8E
您 => 60A8 => E682A8
*/
